package com.ruoyi.service.production;

import com.ruoyi.domain.production.MesWorkOrder;

import java.util.List;

/**
 * 生产工单Service接口
 * 
 * @author ruoyi
 */
public interface IMesWorkOrderService
{
    /**
     * 查询生产工单
     * 
     * @param orderId 生产工单主键
     * @return 生产工单
     */
    public MesWorkOrder selectMesWorkOrderByOrderId(Long orderId);

    /**
     * 查询生产工单列表
     * 
     * @param mesWorkOrder 生产工单
     * @return 生产工单集合
     */
    public List<MesWorkOrder> selectMesWorkOrderList(MesWorkOrder mesWorkOrder);

    /**
     * 校验工单编号是否唯一
     * 
     * @param orderCode 工单编号
     * @param orderId 工单ID（编辑时传入，新增时为null）
     * @return 结果
     */
    public boolean checkOrderCodeUnique(String orderCode, Long orderId);

    /**
     * 根据计划ID查询工单列表
     * 
     * @param planId 计划ID
     * @return 工单集合
     */
    public List<MesWorkOrder> selectMesWorkOrderListByPlanId(Long planId);

    /**
     * 新增生产工单
     * 
     * @param mesWorkOrder 生产工单
     * @return 结果
     */
    public int insertMesWorkOrder(MesWorkOrder mesWorkOrder);

    /**
     * 修改生产工单
     * 
     * @param mesWorkOrder 生产工单
     * @return 结果
     */
    public int updateMesWorkOrder(MesWorkOrder mesWorkOrder);

    /**
     * 批量删除生产工单
     * 
     * @param orderIds 需要删除的生产工单主键集合
     * @return 结果
     */
    public int deleteMesWorkOrderByOrderIds(Long[] orderIds);

    /**
     * 删除生产工单信息
     * 
     * @param orderId 生产工单主键
     * @return 结果
     */
    public int deleteMesWorkOrderByOrderId(Long orderId);
}